diff options
Diffstat (limited to 'dali/internal/accessibility/bridge/bridge-accessible.h')
-rw-r--r-- | dali/internal/accessibility/bridge/bridge-accessible.h | 47 |
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 |