summaryrefslogtreecommitdiff
path: root/dali/internal/accessibility/bridge
diff options
context:
space:
mode:
authorArtur Świgoń <a.swigon@samsung.com>2022-04-21 17:12:57 +0200
committerArtur Świgoń <a.swigon@samsung.com>2022-07-07 17:44:09 +0200
commit6d8848873388f6a187ced9473e12e4f77ca9684c (patch)
treef1e5ccd86323be84045fc7890e5329f8518a1b99 /dali/internal/accessibility/bridge
parentdc60601c7426f0a10aefae793ecfdb6b5355a9ba (diff)
downloaddali-adaptor-6d8848873388f6a187ced9473e12e4f77ca9684c.tar.gz
dali-adaptor-6d8848873388f6a187ced9473e12e4f77ca9684c.tar.bz2
dali-adaptor-6d8848873388f6a187ced9473e12e4f77ca9684c.zip
[AT-SPI] Implement Socket in ApplicationAccessible
The ApplicationAccessible needs to expose the Socket interface in order to be embeddable in a remote process (the WidgetView). Change-Id: I1141749d8cb64038157c46a3e295abdc09c2c299
Diffstat (limited to 'dali/internal/accessibility/bridge')
-rw-r--r--dali/internal/accessibility/bridge/bridge-base.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/dali/internal/accessibility/bridge/bridge-base.h b/dali/internal/accessibility/bridge/bridge-base.h
index 2449842c0..1db8cc45a 100644
--- a/dali/internal/accessibility/bridge/bridge-base.h
+++ b/dali/internal/accessibility/bridge/bridge-base.h
@@ -30,18 +30,23 @@
#include <dali/devel-api/atspi-interfaces/accessible.h>
#include <dali/devel-api/atspi-interfaces/application.h>
#include <dali/devel-api/atspi-interfaces/collection.h>
+#include <dali/devel-api/atspi-interfaces/socket.h>
#include <dali/internal/accessibility/bridge/accessibility-common.h>
/**
* @brief The ApplicationAccessible class is to define Accessibility Application.
*/
-class ApplicationAccessible : public virtual Dali::Accessibility::Accessible, public virtual Dali::Accessibility::Collection, public virtual Dali::Accessibility::Application
+class ApplicationAccessible : public virtual Dali::Accessibility::Accessible,
+ public virtual Dali::Accessibility::Application,
+ public virtual Dali::Accessibility::Collection,
+ public virtual Dali::Accessibility::Socket
{
public:
Dali::Accessibility::ProxyAccessible mParent;
std::vector<Dali::Accessibility::Accessible*> mChildren;
std::string mName;
std::string mToolkitName{"dali"};
+ bool mIsEmbedded{false};
std::string GetName() const override
{
@@ -80,6 +85,11 @@ public:
size_t GetIndexInParent() override
{
+ if(mIsEmbedded)
+ {
+ return 0u;
+ }
+
throw std::domain_error{"can't call GetIndexInParent on application object"};
}
@@ -156,6 +166,23 @@ public:
{
return std::to_string(Dali::ADAPTOR_MAJOR_VERSION) + "." + std::to_string(Dali::ADAPTOR_MINOR_VERSION);
}
+
+ Dali::Accessibility::Address Embed(Dali::Accessibility::Address plug) override
+ {
+ mIsEmbedded = true;
+ mParent.SetAddress(plug);
+
+ return GetAddress();
+ }
+
+ void Unembed(Dali::Accessibility::Address plug) override
+ {
+ if(mParent.GetAddress() == plug)
+ {
+ mIsEmbedded = false;
+ mParent.SetAddress({});
+ }
+ }
};
/**