summaryrefslogtreecommitdiff
path: root/dali/internal/accessibility/bridge/bridge-accessible.h
diff options
context:
space:
mode:
Diffstat (limited to 'dali/internal/accessibility/bridge/bridge-accessible.h')
-rw-r--r--dali/internal/accessibility/bridge/bridge-accessible.h47
1 files changed, 35 insertions, 12 deletions
diff --git a/dali/internal/accessibility/bridge/bridge-accessible.h b/dali/internal/accessibility/bridge/bridge-accessible.h
index 0f8533d99..29fe9b05a 100644
--- a/dali/internal/accessibility/bridge/bridge-accessible.h
+++ b/dali/internal/accessibility/bridge/bridge-accessible.h
@@ -34,25 +34,17 @@
*/
class BridgeAccessible : public virtual BridgeBase
{
-protected:
+public:
/**
* @brief Constructor.
*/
- BridgeAccessible();
-
- /**
- * @brief Registers Accessible functions to dbus interfaces.
- */
- void RegisterInterfaces();
+ explicit BridgeAccessible(std::shared_ptr<BridgeData> bridgeData);
/**
- * @brief Returns the Accessible object of the currently executed DBus method call.
- *
- * @return The Accessible object
+ * @brief Gets dbus interface description for Text type.
*/
- Dali::Accessibility::Accessible* FindSelf() const;
+ DBus::DBusInterfaceDescription GetInterfaces() override;
-public:
/**
* @brief Enumeration for NeighborSearchMode.
*/
@@ -233,8 +225,25 @@ public:
*/
NodeInfoType GetNodeInfo();
+ /**
+ * @copydoc Dali::Accessibility::Bridge::RegisterDefaultLabel()
+ */
+ void RegisterDefaultLabel(Dali::Accessibility::Accessible* object);
+
+ /**
+ * @copydoc Dali::Accessibility::Bridge::UnregisterDefaultLabel()
+ */
+ void UnregisterDefaultLabel(Dali::Accessibility::Accessible* object);
+
private:
/**
+ * @brief Returns the Accessible object of the currently executed DBus method call.
+ *
+ * @return The Accessible object
+ */
+ Dali::Accessibility::Accessible* FindSelf() const;
+
+ /**
* @brief Calculates Neighbor candidate object in root node.
*
* The DFS algorithm in the method is implemented in iterative way.
@@ -314,6 +323,20 @@ private:
* @return The Component object
*/
Dali::Accessibility::Component* CalculateNavigableAccessibleAtPoint(Dali::Accessibility::Accessible* root, Dali::Accessibility::Point point, Dali::Accessibility::CoordinateType type, unsigned int maxRecursionDepth);
+
+ /**
+ * @brief Gets the top-most object from the stack of "default label" sourcing objects.
+ *
+ * @param[in] root The root of the navigation context for which to retrieve the default label.
+ *
+ * @return The handler to accessibility object
+ */
+ Accessible* GetDefaultLabel(Accessible* root) const;
+
+ // We use a weak handle in order not to keep a window alive forever if someone forgets to UnregisterDefaultLabel()
+ using DefaultLabelType = std::pair<Dali::WeakHandle<Dali::Window>, Dali::Accessibility::Accessible*>;
+ using DefaultLabelsType = std::list<DefaultLabelType>;
+ DefaultLabelsType mDefaultLabels;
};
#endif // DALI_INTERNAL_ACCESSIBILITY_BRIDGE_ACCESSIBLE_H