*/
virtual std::shared_ptr<AccessibleNode> last() const = 0;
+ /**
+ * @brief Gets reference of AccessibleNode.
+ *
+ * @param[in] appName application name
+ * @param[in] path path of node
+ *
+ * @return AccessibleNode pointer
+ *
+ * @since_tizen 10.0
+ */
+ virtual std::shared_ptr<AccessibleNode> refAccessibleNode(const std::string &appName, const std::string &path ) const = 0;
+
/**
* @brief Called by @AccessibleWatcher::notifyAll.
* Changes Node property If it's @EventType, @ObjectEventType are matches.
*/
std::shared_ptr<AccessibleNode> last() const override;
+ /**
+ * @copydoc AccessibleNode::refAccessibleNode()
+ */
+ std::shared_ptr<AccessibleNode> refAccessibleNode(const std::string &appName, const std::string &path ) const override;
+
/**
* @copydoc AccessibleNode::isValid()
*/
static void Atspi_accessible_set_include_hidden(AtspiAccessible *obj, gboolean enabled, GError **error);
static gboolean Atspi_accessible_get_include_hidden(AtspiAccessible *obj, GError **error);
static gchar *Atspi_accessible_dump_tree(AtspiAccessible *obj, AtspiDumpDetailLevelType detail_level, GError **error);
+ static AtspiAccessible *Atspi_ref_accessible(const gchar *app_name, const gchar *path);
private:
static std::recursive_mutex mMutex;
*/
std::shared_ptr<AccessibleNode> last() const override;
+ /**
+ * @copydoc AccessibleNode::refAccessibleNode()
+ */
+ std::shared_ptr<AccessibleNode> refAccessibleNode(const std::string &appName, const std::string &path ) const override;
+
public:
/**
* @brief TBD
}
return false;
-}
\ No newline at end of file
+}
+
+std::shared_ptr<AccessibleNode> AtspiAccessibleNode::refAccessibleNode(const std::string &appName, const std::string &path) const
+{
+ AtspiAccessible *accessible = AtspiWrapper::Atspi_ref_accessible(appName.c_str(), path.c_str());
+ auto node = std::make_shared<AtspiAccessibleNode>(accessible);
+
+ return node;
+}
std::unique_lock<std::recursive_mutex> lock(mMutex);
return atspi_accessible_dump_tree(obj, detail_level, error);
}
+
+AtspiAccessible *AtspiWrapper::Atspi_ref_accessible(const gchar *app_name, const gchar *path)
+{
+ std::unique_lock<std::recursive_mutex> lock(mMutex);
+ return ref_accessible(app_name, path);
+}
\ No newline at end of file
bool MockAccessibleNode::getIncludeHidden() const
{
return false;
-}
\ No newline at end of file
+}
+
+std::shared_ptr<AccessibleNode> MockAccessibleNode::refAccessibleNode(const std::string &appName, const std::string &path) const
+{
+ return nullptr;
+}
+